package radio;

/**
 * Interfaz realizada de manera colaborativa
 * @author Paulo Chang-11076,Andrea Mendoza-11331,Vinicio Gomez-11120,Felipe Zelada-08164
 */
public interface iRadio {
 
    /**
    * Cambia el estado de la radio de encendido a apagado y visceversa
    * @return Estado actual de la maquina
    */
    boolean Power(); 
    
    /**
     * Cambia el tipo de señal actual de FM a AM y visceversa
     * <p>
     * Retorna el tipo de frecuencia
     * <p>
     * AM=True, FM=False
     * @return Tipo de frecuencia
     */
    boolean ChangeSignal();
    
     /**
     * Busca la siguiente frecuencia de Radio Disponible
     * @return Frecuencia en sintonía actualmente
     */
    float NextFreq();
    
     /**
     * Guarda la frecuencia actual
     * @param Boton Identificador de la memoria a guardar
     * @return Verdadero si la frecuencia se guardó exitosamente
     */    
    boolean SaveFreq (int Boton);
    
     /**
     * Carga la frecuencia en la memoria
     * @param Boton Identificador de la memoria a cargar
     * @return Frecuencia en la memoria indicada
     */
    float ChangeTune (int Boton);
    
     /**
     * Verifica que la radio está encendida
     * @return Verdadero si está encendido
     */    
    boolean IsOn ();
    
     /**
     * Verifica que la radio esté en modo AM
     * @return Verdadero si está en modo AM
     */    
    boolean IsAm ();
    
     /**
     * Obtiene el valor de la frecuencia actual
     * @return Frecuencia actual
     */    
    float GetFreq ();
}
